The present invention relates to a system for detecting the absolute position of an operating shaft by way of servocontrol of a servomotor, and more particularly to an absolute position detecting system for a servocontrol system, for detecting the absolute position of an operating shaft based on a detected output produced on rotation at a preset r.p.m. ratio of a resolver and an absolute encoder which rotate with a servomotor.
Servomotors are widely used for positioning a movable portion of an industrial robot or the like with a high accuracy, the servomotors being subjected to servocontrol.
FIG. 1 is a block diagram for explaining such servocontrol, showing an example in which the operating shaft of an industrial robot or the like is positionally controlled by an NC (numerical control) apparatus. Designated in FIG. 1 at 101 is a paper tape punched with NC command data such as positioning information for machining, M, S, T function information, etc., and 102 an NC apparatus for enabling a tape reader, described later, to read NC data from the paper tape 101, encoding the read NC data, feeding M, S, T function commands, etc. to the machine through a driver, not shown, and feeding a movement command Zc to a following pulse distributor. The NC apparatus 102 is composed of a processor 102a for effecting arithmetic operations according to a control program, a program memory 102b for storing the control program, a data memory 102c for storing data, an operator's console 102d for effecting control, a tape reader/puncher 102e, a display unit 102f, an input/output port 102g, a current position counter 102h, and an address/data bus 102 interconnecting the above components.
Denoted at 103 is a pulse distributor for effecting a known pulse distributing arithmetic operation based on the movement command Zc, to generate distributed pulses Ps having a frequency dependent on a command speed. A known acceleration and deceleration circuit 104 produces a pulse train Pi by rectilinearly increasing the pulse rate of the distributed pulse train Ps at the time it is generated, and by rectilinearly reducing the pulse trai at the time it is ended. A motor 105 drives an operating shaft, and a pulse coder 106 generates one feedback pulse FP each time the motor 105 rotates through a prescribed interval an error calculating and storing unit 107 is composed of a reversible counter for storing the difference Er between the number of input pulses Pi generated by the acceleration and deceleration circuit 104 and the number of feedback pulses FP. The error calculating and storing unit 107 comprises, as shown, an arithmetic circuit 107a for calculating the difference Er between Pi and FP, and an error register 107b for storing Er. More specifically, in the event that the motor 105 is commanded to rotate and hence is rotating in a normal direction, the error calculating and storing unit 107 counts up the pulse Pi each time it is generated, counts down the feedback pulse FP each time it is generated, and stores the difference Er between the number of the input pulses and the number of the feedback pulse in the error register 107b. 108 denotes a digital-to-analog (DA) converter for generating an analog voltage in proportion to the content of the error register 107b, and 109 denotes a speed control circuit. The error calculating and storing unit 107 and the DA converter 108 constitute a motor position control circuit.
Operation of the conventional apparatus shown in FIG. 1 will be described.
Prior to machining, the NC data on the paper tape 101 is read by the tape reader/puncher 102e and stored through the bus 102j in the data memory 102c. A start command is applied, via the bus 102j, to the processor 102a in response to operation of the operator's console 102d. Then, the operator's console 102d is operated upon to successively read the machining control program out of the program memory 102b and execute the machining control program. More specifically, the NC data is read from the data memory 102c and at the same time necessary parameters (NC parameter, feed speed, machining voltage, etc.) are read to produce an X-axis movement command Xc and a Y-axis movement command Yc for moving a table (not shown) in X and Y directions, the commands being fed through the input/output port 102g to a table driver (not shown) for positioning the table. Although not shown in FIG. 1, the arrangement present in the route from the input/output port 102g to the servomotor 105 is also provided for an X-axis and a Y-axis. Likewise, a Z-axis movement command Zc is produced, and M, S, T function commands are delivered through the input/output port 102g to the machine. The movement command Zc is issued through the bus 102j to the input/output port 102g. When the movement command is applied from the input/output port 102g to the pulse distributor 103, the pulse distributor 103 effects a pulse distributing arithmetic operation based on the movement command Zc to issue distributed pulses Ps, which are applied to the acceleration and deceleration circuit 104 to increase or reduce the pulse rate for supplying a command pulse train Pi to the error calculating and storing unit 107. Since the content of the error register 107b is no longer zero, a voltage is supplied from the DA converter 108 to enable the speed control circuit 109 to drive the motor 105 for driving the operating shaft. Upon rotation of the motor 105 through a prescribed interval, feedback pulse FP are generated by the pulse coder 106 and applied to the error calculating and storing unit 107, and the error register 107b now stores the difference Er between the number of command pulses Pi and the number of feedback pulses FP. The motor 105 is then subjected to servocontrol so as to bring the error Er to zero for driving the operating shaft to a target position.
In servo positioning, as described above, the current position is determined by the counter 102h by employing the feedback pulses FP from the pulse coder 106, which are also utilized for positional control. The pulse coder 106 has a high resolving accuracy and is capable of highly accurate positional control. Therefore, this pulse coder is better than other detectors, such as a resolver, as a detector for positional control.
However, since the pulse coder 106 has no absolute position detecting function, it will be necessary to effect an origin-return operation when the absolute position of the operating shaft is lost (as when the servo system malfunctions or a power supply is switched on). The origin-return operation requires a complex mode of control and is time-consuming. Therefore, there is a need for a new system for detecting an absolute position without effecting the origin-return operation.
There are known an absolute encoder and a resolver as a positional detector capable of detecting an absolute position. The absolute encoder serves to issue an absolute position corresponding to a rotational angle of the operating shaft. The resolver has, as shown in FIG. 2, a rotor 202a, a rotor winding 202b, two stator windings 202c, 202d positioned 90.degree. out of phase with each other, and carrier generator circuits 202e, 202f for generating carriers of sin .omega.t, sin .omega.t, respectively. If the rotor 202a is in the position of an angle .theta., then the rotor winding 202b develops a voltage e expressed as follows: EQU e=sin (.omega.t+.theta.) (1)
The relationship between the carrier sin .omega.t and the output e from the resolver 202 is illustrated in FIG. 3. The absolute position can be determined by finding the phase differences .theta..sub.1 .about..theta..sub.n with the carrier sin .omega.t.
Where such a positional detector which is capable of detecting an absolute position, is employed in the servo system, the full stroke of the movable portion to be detected positionally is generally achieved by n (100, for example) revolutions of the motor. Therefore, the resolution is 1/n with respect to one revolution of the motor, resulting in the failure to achieve a sufficient positional accuracy. No increased positional control accuracy can be accomplished unless the accuracy of detecting the absolute position is compatible with a high resolution of the pulse coder.